package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Role;

import java.util.List;
import java.util.Map;
import java.util.Set;

/***
 *角色接口
 */
public interface RoleDao {
    /***
     * 根据用户id查询角色
     * @param userId
     * @return
     */
    Set<Role> findRoleByUserId(Integer userId);
    /***
     * 插入插入角色和权限的中间表
     * @param map
     */
    void setRoleAndPermission(Map<String, Integer> map);
    /**
     * 插入角色和菜单的中间表
     * */
    void setRoleAndMenu(Map<String, Integer> map);


    /***
     * 增加检查组
     * @param
     */
    void add(Role role);


    /***
     * 分页
     * @param queryString
     * @return
     */
    Page<Role> selectByCondition(String queryString);

    /***
     * 回显数据之根据Id查找检查组信息
     * @param id
     * @return
     */
    Role findById(Integer id);

    /***
     * 回显数据之根据检查组的id查出对应的检查项id
     * @return
     */
    List<Integer> findPermissionIdsByRoleId(Integer id);
    /***
     * 回显数据之根据检查组的id查出对应的检查项id
     * @return
     */
    List<Integer> findMenuIdsByRoleId(Integer id);
    /**
     * 根据检查组id删除中间表数据1
     * @param id
     */
    void deleteAssociation1(Integer id);
    /**
     * 根据检查组id删除中间表数据2
     * @param id
     */
    void deleteAssociation2(Integer id);

    /***
     * 编辑检查组
     * @param
     */
    void edit(Role role);

    /***
     * 删除检查组
     * @param id
     */
    void delete(Integer id);

    /***
     * 查询所有检查组数据
     */
    List<Role> findAll();
}
